            void InitInputData(Varyings IN,half3 normalTS,out InputData inputData)
            {
                inputData = (InputData)0;
                
                inputData.positionWS =IN.positionWS;

                #ifdef _NORMALMAP
                inputData.normalWS = TransformTangentToWorld(normalTS,half3x3(IN.tangentWS.xyz,
                    IN.bitangentWS.xyz,IN.normalWS.xyz));
                half3 viewDirWS =half3(IN.normalWS.w ,IN.tangentWS.w,IN.bitangentWS.w);
                #else
                inputData.normalWS = IN.normalWS;
                half3 viewDirWS = GetWorldSpaceViewDir(IN.positionWS);
                #endif

                inputData.normalWS = NormalizeNormalPerPixel( inputData.normalWS);

                viewDirWS =SafeNormalize(viewDirWS);
                inputData.viewDirectionWS =viewDirWS;
 
                #ifdef REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR
                inputData.shadowCoord =IN.shadowCoord;
                #elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)
                inputData.shadowCoord = TransformWorldToShadowCoord(IN.positionWS);
                #else
                //029 少分号
                //inputData.shadowCoord = float4(0,0,0,0);
            #endif
                
            #ifdef _ADDTIONAL_LIGHTS_VERTEX
                inputData.vertexLighting IN.fogFactorAndVertexLight.yzw;
                inputData.fogCoord =IN.fogFactorAndVertexLight.x;
                #else
                inputData.vertexLighting = half3(0,0,0);
                inputData.fogCoord =IN.fogFactor.x;
                #endif
                
                inputData.bakedGI =SAMPLE_GI(IN.lightmapUV,IN.vertexSH,IN.normalWS);
                inputData.normalizedScreenSpaceUV =GetNormalizedScreenSpaceUV(IN.positionCS);
                inputData.shadowMask =SAMPLE_SHADOWMASK(IN.lightmapUV);
                
            }